package zsw.factory;

import zsw.pojo.Car;

public class TestFactorys {
	
	public static void main(String[] args) {
		//现在用户需要一个宝马车,简单工厂
		SimpleFactoy simFac=new SimpleFactoy();
		Car car = simFac.getCar("baoma");
		System.out.println(car.getCarName());
		
		//现在用户需要一个宝马车,抽象工厂
		AbstractFactoy fa=new BaomaFactory();
		Car car2 = fa.getCar();
		System.out.println(car2.getCarName());
		
		//从上面看没有什么区别，但是如果要增加一个车，就有区别了
		//简单工厂模式违背了开闭原则（对扩展开放，对修改关闭），当需要增加一个车的时候
		//我们需要去修改简单工厂模式的方法。
		
		//如果我们使用抽象工厂模式，我们不需要修改一现在已经存在的代码。所有的代码都是新增
		//很好的遵循开闭原则。
	}

}
